"""
地址：http://121.40.86.4:8899/admin/login
账号：admin
密码：Aa010903!

测试用例：
1、输入账号
2、输入密码
3、点击登录，看是否登录成功
4、点击用户分组
5、新增用户分组
"""
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait  # 强制等待的方法
from selenium.webdriver.support import expected_conditions as EC   # 如果找不到则抛出异常
# 实例化驱动
driver = webdriver.Chrome()
# 打开网页
driver.get("http://121.40.86.4:8899/admin/login")
# 全屏化
driver.maximize_window()
# 设置隐式等待
driver.implicitly_wait(15)
# 输入账号
driver.find_elements(By.CLASS_NAME,"el-input__inner")[0].send_keys("admin")
# 输入密码
driver.find_elements(By.CLASS_NAME,"el-input__inner")[1].send_keys("Aa010903!")
# 点击登录按钮
driver.find_element(By.XPATH,"//*[text()='登录']").click()
# 点击用户
time.sleep(2)
driver.find_elements(By.CLASS_NAME,"font12")[1].click()
# 点击用户分组
time.sleep(1)
driver.find_element(By.XPATH,"//*[text()='用户分组']").click()
# 等待页面加载
time.sleep(2)
# driver.find_element(By.XPATH,"//*[text()='添加分组']").click()
WebDriverWait(driver,10,0.5).until(EC.presence_of_element_located((By.XPATH,"//*[text()='添加分组']"))).click()
# 等待弹窗出现
time.sleep(2)
# 输入内容
# driver.find_elements(By.CLASS_NAME,"el-input__inner")[2].send_keys('新增用户分组')
WebDriverWait(driver,10,0.5).until(EC.presence_of_all_elements_located((By.CLASS_NAME,"el-input__inner")))[2].send_keys('新增用户分组')
#点击确定按钮
time.sleep(2)
WebDriverWait(driver,10,0.5).until(EC.presence_of_all_elements_located((By.CLASS_NAME,"el-button")))[2].click()
"""
WebDriverWait:
             第一个形参：driver，放入实例化的驱动
             第二个形参：10；  给定总体的寻找时长
             第三个形参：0.5； 每隔0.5s寻找一次元素
until：
      EC元素寻找
      presence_of_element_located：放入元组参数；相当于find_element
      presence_of_all_elements_located：相当于find_elements
"""
# 等待下页面执行完毕
time.sleep(5)
"""
每一次定位元素都要加time.sleep()
这种方法太墨迹了，我们可以用隐式等待来去替换它
隐式等待mplicitly_wait：
                等页面元素全都加载出来再去做操作，在15秒内去寻找元素，如果找不到则抛出异常 
                每一个元素都会享受到等等待时长
强制等待time.sleep()：
                代码运行到此，强制等待几秒
显示等待WebdriverWait：
                给定一个秒数，在规定的时间内，频繁的去找元素，找到了则返回，没有找到则抛出异常                
"""



